<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
      <script type="text/javascript">
      console.log("=======return函数调用======");
      function add(x,y) {
        return x+y;
        console.log(add(返回后面的代码));
      }

      console.log(add(2,3));

          console.log("=======递归======");
          function fib(num) {
            if (num > 2){
              return fib(num -2)+fib(num -1);
            }else{
              return 1;
            }
          }
          console.log(fib(6));

            console.log("=======凡是可以使用值得地方，就能使用函数======");
            var option = add;
            console.log(option(5,6));

            function a(op){
              return op;
            }

            a(add(8,9));

            console.log(a(add(8,9)));

            var b = {
              name : add,
            }
            console.log(b.name(5,6));

              console.log("=======name属性======");
                console.log("=======name属性返回紧跟在function之后的函数名======");

                function f1() {

                }
                console.log(f1.name);

                var f2 = function (){

                }
                console.log(f2.name);

                  console.log("=======length属性======");
                    console.log("=======length属性返回函数预期传入的参数个数，即函数定义之中的参数======");


                    function f3(a,b,c,d,e){

                    }
                    console.log(f3.length);

                      console.log("=======函数的toString方法返回函数的源码======");
                      function f4() {
                        a();
                        b();
                        c();
                        d();
                      }
                      console.log(f4.toString());
                        console.log("=======利用这一点，可以变相实现多行字符串======");
                        var f5=function (val) {
                        var arr = val.toString().split('\n');
                        return arr.slice(1,arr.length-1).join('\n');
                      }
                      function f6(){
                        /*
                        这是一个
                        多行注释
                        */
                      }

                      console.log(f5(f6.toString()));

                        console.log("=======全局变量：在函数外声明的变量======");
                        var name ="debang";

                        function f7(){
                          return name;
                        }
                        function f8(){
                          return name +"is good";
                        }
                        console.log(f7());
                        console.log(f8());
        </script>
  </body>
</html>
